Home

Abel Torres Espin is an assistant adjunct professor at the Brain and Spinal Injury Center (BASIC), Department of Neurosurgery, at the University of California, San Francisco (UCSF).

His current research focuses on the intersection between neurotrauma research and data science. He applies, explores and develops data science methods in traumatic injuries affecting the brain and the spinal cord to increase reproducibility, accelerate translation and augment evidence-based medical practice. These methods include machine learning and intelligence analytics, open science, data sharing, data infrastructures, data mining and data visualization, among others.

He uses the programming language R as a primary tool, and Python from time to time.

Publications

Software

syndRomics: an R package for reproducible analysis of disease space via principal components

GitHub

Citation: Abel Torres-Espin, Austin Chou, J. Russell Huie, Nikos Kyritsis, Pavan Upadhyayula, and Adam R. Ferguson. Reproducible analysis of disease space via principal components using the novel R package syndRomics. https://doi.org/10.7554/eLife.61812


Neurite-J: an ImageJ plug in for axonal growth analysis in organotypic cultures

Download

Citation: Torres-Espín A, Santos D, González-Pérez F, del Valle J, Navarro X. Neurite-J: An Image-J plug-in for axonal analisys in organotypic cultures. J Neurosci Meth 236:26–39

About

Abel was born in Mataro, close to Barcelona, Spain. He studied biology at the Universitat de Barcelona from 2002 to 2007. In 2008 he started his PhD in the neuroscience program at the Universitat Autonoma de Barcelona under the supervision of Dr. Xavier Navarro, finishing his thesis entitled ‘Terapia celular para lesiones que afectan a la medula espinal’ (Cell therapy for injuries affecting the spinal cord). In 2014, Abel moved to Edmonton, Canada, for a postdoctoral position at the University of Alberta under the supervision of Dr. Karim Fouad. Here, he worked on the interaction between neuroinflammation and rehabilitative motor training after cervical spinal cord injury. Since November 2018, he have been working at the University of California San Francisco in a team led by Dr. Adam Ferguson, where they work on the application of data science to accelerate neurotrauma research and translation.

When Abel is not doing research or coding, he is visiting mountains, climbing or catching up with friends.

This website

This website has been created in R, using Rmarkdown and the flexdashboard package. It is an attempt to produce a light weight academic webpage. Other options such as blogdown are possible, and I recommend to explore them. After trying with several options, I decided using trying flexdashboard, which its primary use is for fast creation of dashboard in R. I found the multi-page layout and the incorporation of custom CSS code sufficient to produce this page. Some limitations of this light weight site is the difficulty to incorporate more dynamic content such as a blog.

Publications as a table: the publication section is presented as a table rather than the usual list. Using the DT R package, and R interface to the JavaScript library DataTables, allows for extended functionalities such as search, sorting and pagination without having to add those externally, thus utilizing the html interactive capabilities. The table is automatically populated every knitting by querying PubMed using the easyPubMed R package interfacing with PubMed API. You can see the source code using the navigation var (top right corner) or in GitHub.

This makes very easy to update the page by updating the Rmarkdown, knitting and pushing to GitHub.

---
title: "Abel Torres Espin"
output: 
  flexdashboard::flex_dashboard:
    theme: 
      version: 3
    social: [ "menu" ]
    source_code: embed
    css: webFlex.css
editor_options: 
  chunk_output_type: console
---

```{r setup, include=FALSE}
library(flexdashboard)
library(easyPubMed) #API connection with pubmed
library(tidyverse) #To facilitate some data wrangling
library(DT) # for table html formatting
```

Home
=====================================

:::{.intro .justify}

Abel Torres Espin is an assistant adjunct professor at the [Brain and Spinal Injury Center (BASIC)](https://brainandspinalinjury.org/), Department of Neurosurgery, at the University of California, San Francisco (UCSF). 

His current research focuses on the intersection between neurotrauma research and data science. He applies, explores and develops data science methods in traumatic injuries affecting the brain and the spinal cord to increase reproducibility, accelerate translation and augment evidence-based medical practice. These methods include machine learning and intelligence analytics, open science, data sharing, data infrastructures, data mining and data visualization, among others.

He uses the programming language R as a primary tool, and Python from time to time.
:::

:::{.footnote .justify}
Abel.torresespin@ucsf.edu || [GitHub](https://github.com/ATEspin) || [UCSF profile](https://profiles.ucsf.edu/abel.torresespin) || [Google Scholar](https://scholar.google.com/citations?user=c7vjfOUAAAAJ&hl=en)
:::

Publications
=====================================

```{r}
## This creates a search that gets saved in NML servers with specific ids, that makes the query reusable without the need to search again.
my_entrez_id <- get_pubmed_ids('Abel Torres-Espin')

## This fetches the pubmed info for each paper returned as list of string character vector
track_txt <- fetch_pubmed_data(my_entrez_id, format = "medline")

## Creates an index of where the papers start in the track_txt string
paper_list_index<-c(which(track_txt==""),length(track_txt))

## Extract papers by list
paper_list<-list()
for(i in 1:(length(paper_list_index)-1)){
  paper_list[[i]]<-track_txt[seq(paper_list_index[i],paper_list_index[i+1]-1)]
}

## List of PMIDs using the PMID tag
PMC_list<-track_txt[str_detect(track_txt, "^PMID- ")]
PMC_list<-unique(str_remove_all(PMC_list, '^PMID- '))

### build the dataframe
extract<-list()
for (p in 1:length(paper_list)){
  i<-paper_list[[p]]
  ## Author names
  author_names<-i[str_detect(i, "^AU ")]
  author_names<-paste0(str_remove_all(author_names, "^AU  - "), collapse="; ")
  
  ## PMIDs
  PMID<-i[str_detect(i, "^PMID- ")]
  PMID<-str_remove_all(PMID, '^PMID- ')
  
  ## Date publication
  date_p<-i[str_detect(i, "^DP ")]
  date_p<-str_remove_all(date_p, '^DP  - ')
  
  ## year
  year<-str_extract(date_p,"[[:digit:]]+")
  
  ## Title
  title<-i[str_detect(i, "^TI ")]
  title<-str_remove_all(title, '^TI  - ')
  
  ## Publication info
  pub_info<-i[str_detect(i, "^SO ")]
  pub_info<-str_remove_all(pub_info, '^SO  - ')
  
  ## DOI
  lid<-i[str_detect(i, "^LID ")]
  lid<-str_remove_all(lid, '^LID - ')
  
  if (length(lid)>0){
    if (str_detect(lid, "doi")){
      lid<-str_remove_all(lid, ' .+')
      lid<-paste0("https://doi.org/", lid)
    }else{
      lid<-NULL
    }
  }else{
    lid<-NULL
  }
  
  ## join all info in dataframe
  extract[[p]]<-data.frame("Year" = ifelse(is_empty(year), "No year", year),
                           "Title" = ifelse(is_empty(title), "No title", title), 
                           "Authors" = ifelse(is_empty(author_names), 
                                              "No names", author_names), 
                           "Info" = ifelse(is_empty(pub_info), "No info", pub_info), 
                           "PMID" = ifelse(is_empty(PMID), "No PMID", PMID),
                           "DOI" = ifelse(is_empty(lid), "No DOI", lid))
}

## Create the dataframe
pub_df<-do.call(rbind, extract)
```

```{r}
pub_df<-pub_df%>%select(-DOI)
datatable(pub_df)
```

Software
=====================================

:::{.mainText .justify}
`syndRomics`: an R package for reproducible analysis of disease space via principal components



[GitHub](https://github.com/ucsf-ferguson-lab/syndRomics)

**Citation**: Abel Torres-Espin, Austin Chou, J. Russell Huie, Nikos Kyritsis, Pavan Upadhyayula, and Adam R. Ferguson. Reproducible analysis of disease space via principal components using the novel R package syndRomics. https://doi.org/10.7554/eLife.61812
:::
***
:::{.mainText .justify}
`Neurite-J`: an ImageJ plug in for axonal growth analysis in organotypic cultures



[Download](https://imagejdocu.tudor.lu/plugin/analysis/neurite-j/start)

**Citation**: Torres-Espín A, Santos D, González-Pérez F, del Valle J, Navarro X. Neurite-J: An Image-J plug-in for axonal analisys in organotypic cultures. J Neurosci Meth 236:26–39
:::

:::{.footnote .justify}
Abel.torresespin@ucsf.edu || [GitHub](https://github.com/ATEspin) || [UCSF profile](https://profiles.ucsf.edu/abel.torresespin) || [Google Scholar](https://scholar.google.com/citations?user=c7vjfOUAAAAJ&hl=en)
:::

About
=====================================

:::{.mainText .justify}

Abel was born in Mataro, close to Barcelona, Spain. He studied biology at the Universitat de Barcelona from 2002 to 2007. In 2008 he started his PhD in the neuroscience program at the Universitat Autonoma de Barcelona under the supervision of Dr. Xavier Navarro, finishing his thesis entitled ‘Terapia celular para lesiones que afectan a la medula espinal’ (Cell therapy for injuries affecting the spinal cord). In 2014, Abel moved to Edmonton, Canada, for a postdoctoral position at the University of Alberta under the supervision of Dr. Karim Fouad. Here, he worked on the interaction between neuroinflammation and rehabilitative motor training after cervical spinal cord injury. Since November 2018, he have been working at the University of California San Francisco in a team led by Dr. Adam Ferguson, where they work on the application of data science to accelerate neurotrauma research and translation.

When Abel is not doing research or coding, he is visiting mountains, climbing or catching up with friends.

:::

:::{.footnote .justify}
Abel.torresespin@ucsf.edu || [GitHub](https://github.com/ATEspin) || [UCSF profile](https://profiles.ucsf.edu/abel.torresespin) || [Google Scholar](https://scholar.google.com/citations?user=c7vjfOUAAAAJ&hl=en)
:::

This website
=====================================

:::{.mainText .justify}

This website has been created in R, using Rmarkdown and the [flexdashboard](https://pkgs.rstudio.com/flexdashboard/) package. It is an attempt to produce a light weight academic webpage. Other options such as [blogdown](https://bookdown.org/yihui/blogdown/) are possible, and I recommend to explore them. After trying with several options, I decided using trying flexdashboard, which its primary use is for fast creation of dashboard in R. I found the multi-page layout and the incorporation of custom CSS code sufficient to produce this page. Some limitations of this light weight site is the difficulty to incorporate more dynamic content such as a blog.

**Publications as a table**: the publication section is presented as a table rather than the usual list. Using the [DT](https://rstudio.github.io/DT/) R package, and R interface to the JavaScript library DataTables, allows for extended functionalities such as search, sorting and pagination without having to add those externally, thus utilizing the html interactive capabilities. The table is automatically populated every knitting by querying PubMed using the [easyPubMed](https://cran.r-project.org/web/packages/easyPubMed/index.html) R package interfacing with PubMed API. You can see the source code using the navigation var (top right corner) or in [GitHub](https://github.com/ATEspin/ATEspin.github.io).

This makes very easy to update the page by updating the Rmarkdown, knitting and pushing to GitHub.

:::

:::{.footnote .justify}
Abel.torresespin@ucsf.edu || [GitHub](https://github.com/ATEspin) || [UCSF profile](https://profiles.ucsf.edu/abel.torresespin) || [Google Scholar](https://scholar.google.com/citations?user=c7vjfOUAAAAJ&hl=en)
:::